package com.naiterui.ehp.bs.recommend.vo.prescription;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.naiterui.ehp.bp.utils.date.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 处方笺详情VO
 *
 * @version 2017年7月21日 by wangchuan
 * @Description
 */
@Data
@ApiModel(value = "PrescriptionDetailVO", description = "处方笺详情VO")
public class PrescriptionDetailVO {

  /**
   * 是否显示医生签章。0.不显示 1.显示
   */
  public static final Integer SHOW_SIGNATURE_FALSE = 0;
  /**
   * 是否显示医生签章。0.不显示 1.显示
   */
  public static final Integer SHOW_SIGNATURE_TRUE = 1;

  /**
   * 处方笺抬头
   */
  @ApiModelProperty(value = "处方笺抬头")
  private String title;

  /**
   * 处方笺编号
   */
  @ApiModelProperty(value = "处方笺编号")
  private String serialNumber;

  /**
   * 推荐时间
   */
  @ApiModelProperty(value = "推荐时间")
  private Long recomTime;


  @ApiModelProperty(value = "就诊人Id")
  private Long inquirerId;

  /**
   * 患者姓名
   */
  @ApiModelProperty(value = "患者姓名")
  private String patientName;

  /**
   * 患者年龄
   */
  @ApiModelProperty(value = "患者年龄")
  private Integer patientAge;

  @ApiModelProperty(value = "患者显示年龄")
  private String patientAgeStr;

  /**
   * 患者年龄单位
   */
  @ApiModelProperty(value = "患者年龄单位[周、个月、岁]")
  private String patientAgeUnit;

  /**
   * 患者性别：0.女 1.男
   */
  @ApiModelProperty(value = "患者性别：0.女 1.男")
  private Integer patientGender;

  /**
   * 诊断信息，多个诊断拼接
   */
  @ApiModelProperty(value = "诊断信息")
  private String diagnosis;

  @ApiModelProperty(value = "诊断名列表")
  private List<String> diagnosisList;

  /**
   * 推荐药品信息：<code>products</code>
   */
  @ApiModelProperty(value = "推荐药品信息")
  private List<PrescriptionItemVO> items;

  /**
   * 医生科室
   */
  @ApiModelProperty(value = "医生科室")
  private String departmentName;

  @ApiModelProperty(value = "医生ID")
  private Long doctorId;

  /**
   * 医生姓名
   */
  @ApiModelProperty(value = "医生姓名")
  private String doctorName;

  @ApiModelProperty(value = "初审药师姓名")
  private String prePharmacistName;
  /**
   * 药师姓名
   */
  @ApiModelProperty(value = "药师姓名")
  private String pharmacistName;

  /**
   * 调配药师姓名
   */
  @ApiModelProperty(value = "调配药师姓名")
  private String alPharmacistName;

  /**
   * 有效期描述
   */
  @ApiModelProperty(value = "有效期描述")
  private String expireDesc;

  /**
   * 慢性疾病提示
   */
  @ApiModelProperty(value = "慢性疾病提示")
  private String chronicDisease;

  /**
   * 医生审核时间
   */
  @ApiModelProperty(value = "医生审核时间")
  private Long doctorAuditTime;

  /**
   * 药师审核时间
   */
  @ApiModelProperty(value = "药师审核时间")
  private Long pharmacistAuditTime;

  /**
   * 是否显示医生签章。0.不显示 1.显示
   */
  @ApiModelProperty(value = "是否显示医生签章。0.不显示 1.显示")
  private Integer showDoctorSignature;

  /**
   * 是否显示药师签章。0.不显示 1.显示
   */
  @ApiModelProperty(value = "是否显示药师签章。0.不显示 1.显示")
  private Integer showPharmacistSignature;

  /**
   * 是否显示调配药师签章。0.不显示 1.显示
   */
  @ApiModelProperty(value = "是否显示调配药师签章。0.不显示 1.显示")
  private Integer showAlPharmacistSignature;

  /**
   * 签章名
   */
  @ApiModelProperty(value = "签章名")
  private String signatureContent;

  /**
   * 是否已购买 ：0，否；1，是
   */
  // @JsonIgnore(true)
  @ApiModelProperty(value = "是否已购买 ：0，否；1，是[PT-2.14.0新增]")
  private Integer buy;
  /**
   * 是否已过有效期：0，否；1，是
   */
  // @JsonIgnore(true)
  @ApiModelProperty(value = "是否已过有效期：0，否；1，是[PT-2.14.0新增]")
  private Integer expire;

  @ApiModelProperty(value = "处方状态：0：待购买，1：已购买，2：已下单(待购买), 4：已取消")
  private Integer status;

  /**
   * 是否可以购买：0，否；1，是
   */
  // @JsonIgnore(true)
  @ApiModelProperty(value = "是否可以购买：0，否；1，是[PT-2.14.0新增]")
  private Integer canBuy;

  /**
   * 推荐是否已作废
   */
  @ApiModelProperty(value = "是否已作废：0，未作废；1，已作废；【医生端-V3.4.0新增- by gongbaoqiang】")
  private Integer invalid;
  /**
   * 作废时间
   */
  @ApiModelProperty(value = "作废时间【医生端-V3.4.0新增- by gongbaoqiang】")
  @JsonFormat(pattern = DateUtil.DATE_TIME)
  private Date invalidTime;
  /**
   * 核对发药人
   */
  @ApiModelProperty(value = "核对发药人【医生端-V3.4.0新增- by gongbaoqiang】")
  private String checkMedicationName;
  /**
   * 是否显示作废按钮
   */
  @ApiModelProperty(value = "是否显示作废按钮：0, 显示； 1， 不显示；【医生端-V3.4.0新增- by gongbaoqiang】")
  private Integer showInvalidBtn;

  /**
   * 医院公章图片地址
   */
  @ApiModelProperty(value = "医院公章图片地址【医生端-V3.4.0新增- by gongbaoqiang】")
  private String hospitalSealUrl;

  /**
   * 处方价格
   */
  @ApiModelProperty(value = "处方价格")
  private String totalPrice;

  /**
   * 推荐ID
   */
  @ApiModelProperty(value = "推荐ID")
  private Long recommendId;

  @ApiModelProperty(value = "处方审核状态(0:不需要审核, 1:待审核，2:通过, 3:不通过，4：已失效)")
  private Integer checkingStatus;

  @ApiModelProperty(value = "审核描述")
  private String checkingDesc;

  @ApiModelProperty(value = "医生签章图")
  private String drSealImage;
  @ApiModelProperty(value = "初审药师签章图")
  private String prePhSealImage;
  @ApiModelProperty(value = "复审药师签章图")
  private String phSealImage;

  @ApiModelProperty(value = "调配药师签章图")
  private String alPhSealImage;

  @ApiModelProperty(value = "调配药师审核时间")
  private Long alPharmacistAuditTime;

  @ApiModelProperty(value = "是否手写签章(0，否；1，是)")
  private Integer handWriting;

  @ApiModelProperty(value = "是否已申请求药(0，否；1，是)")
  private Integer require;
}
